<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of AtendimentosController
 *
 * @author gilberto
 */
class AtendimentosController extends AppController {

    var $name = 'Atendimentos';
    var $helpers = array('Js');
    var $component = array('RequestHandler');

    public function index() {
        $this->set('lista_atendimento',$this->Atendimento->find('all',array(
            'order' => array('Atendimento.created DESC')
        )));
    }

    function beforeFilter() {
        parent::beforeFilter();
        
        $user = $this->Session->read('Auth.User');
        $negados = array();
        if($user[0]['Perfil']['id'] == 1){
            $negados = array('marcar','retornarbairros','calcularfrete');
            
        }else if($user[0]['Perfil']['id'] == 3){
            $negados = array('editar');
        }
        
        if(in_array($this->params['action'],$negados)){
            $this->redirect(array('controller'=>'usuarios','action'=>'index'));
        }
    }
    
    public function marcar() {
        $moduser = ClassRegistry::init('Usuario');
        $usuarios = $moduser->find('list', array(
            'fields' => array('Usuario.nm_usuario'),
            'conditions' => array('Usuario.perfil_id =' => 1)
        ));

        $modcidades = ClassRegistry::init('Cidade');
        $cidades = $modcidades->find('list', array(
            'fields' => array('Cidade.nm_cidade', 'Cidade.nm_cidade')
        ));

        $modmot = ClassRegistry::init('Motocicleta');
        $motocicletas = $modmot->find('list', array(
            'fields' => 'Motocicleta.cd_placa_motocicleta',
            'conditions' => array(
                'ic_ativo_motocicleta_sim_nao' => true
            )
        ));

        $modfretes = ClassRegistry::init('Frete');
        $fretes = $modfretes->find('all', array(
            'fields' => array('Frete.id', 'Cidade.nm_cidade')
        ));
        //$fretes = $modfretes->query('select f.id, c.nm_cidade from fretes f,cidades c where f.cidade_id = c.id');
        //print_r($cidades);
        $this->set('lista_usuarios', $usuarios);
        $this->set('lista_cidades', $cidades);
        $this->set('lista_motocicletas', $motocicletas);
        $this->set('lista_fretes', $fretes);

        if ($this->request->is('post') || $this->request->is('put')) {
            if ($this->Atendimento->save($this->request->data)) {
                $this->Session->setFlash('Atendimento marcado com sucesso');
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash('Falha ao Marcar Atendimento');
            }
        }
    }

    public function beforeSave() {
        //$this->Atendimento->dt_atendimento = date("Y-m-d H:i:s");
        
        $this->Atendimento->vl_frete = $this->Atendimento->compararFrete(
                $this->Atendimento->nm_cidade_origem_entrega,
                $this->Atendimento->nm_bairro_origem_entrega,
                $this->Atendimento->nm_cidade_destino_entrega,
                $this->Atendimento->nm_bairro_destino_entrega
        );
    }

    function retornarbairros() {
        $frete = ClassRegistry::init('Frete');
        $find = $frete->find('all', array(
            'fields' => array('Frete.id', 'Frete.nm_bairro_frete'),
            'conditions' => array('Cidade.nm_cidade' => $this->request->data['idCidade'] ? $this->request->data['idCidade'] : '')
        ));
        $this->autoRender = false;
        $texto = "({'bairros' :[";
        $cont = 0;
        foreach ($find as $f) {
            $texto.="{'id' : {$f['Frete']['id']}, 'bairro' : '{$f['Frete']['nm_bairro_frete']}' }";
            if (!$cont == sizeof($find) - 1)
                $texto.=',';
            $cont++;
        }
        echo $texto . ']})';
    }

    function teste() {
        
    }

    function teste2() {

        $this->autoRender = false;
    }

    function calcularfrete() {
       
        if ($this->request->data['co'] && $this->request->data['bo'] && $this->request->data['cd'] && $this->request->data['bd']) {
            if ($this->request->data['co'] != '' && $this->request->data['bo'] != '' && $this->request->data['cd'] != '' && $this->request->data['bd'] != '') {
                print_r($this->Atendimento->compararFrete(
                                $this->request->data['co'], $this->request->data['bo'], $this->request->data['cd'], $this->request->data['bd']
                ));
                
            }
        }
        $this->autoRender = false;
    }
    
    function visualizar($id = null){
        if(!$id){
            throw new NotFoundException('Atendimento inválido');
        }
        $this->Atendimento->id = $id;
        $this->set('at',$this->Atendimento->read());
    }
    
    function isAuthorized($user) {
        parent::isAuthorized($user);
        
        return false;
    }

}

?>
